/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is Forte for Java, Community Edition. The Initial
* Developer of the Original Code is Sun Microsystems, Inc. Portions
* Copyright 1997-2000 Sun Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.modules.web.core.syntax;
import java.awt.Color;
import java.awt.Font;
import java.util.*;
import org.netbeans.editor.Settings;
import org.netbeans.editor.SettingsUtil;
import org.netbeans.editor.DefaultSettings;
import org.netbeans.editor.Coloring;
import org.netbeans.editor.Syntax;
import org.netbeans.editor.BaseKit;
import org.netbeans.editor.ext.HTMLSyntax;
import org.netbeans.modules.editor.KitSupport;
public class JspMultiSettings implements org.netbeans.editor.Settings.Initializer {
/** Create map filled with all the desired settings
* @param kitClass kit class for which the settings are being created
* or null when global settings are created.
* @return map containing the desired settings or null if no settings
* are defined for the given kit
*/
public Map updateSettingsMap (Class kitClass, Map m) {
if (kitClass == JSPKit.class) {
if (m == null)
m = new HashMap();
m.put(Settings.POPUP_MENU_ACTION_NAME_LIST,
new ArrayList(Arrays.asList(
new String[] {
KitSupport.systemActionSave,
null,
KitSupport.systemActionCompile,
null,
KitSupport.systemActionExecute,
null,
BaseKit.cutAction,
BaseKit.copyAction,
BaseKit.pasteAction,
null,
BaseKit.removeSelectionAction,
null,
KitSupport.systemActionTools,
KitSupport.systemActionProperties
}
))
);
m.put (org.netbeans.editor.Settings.ABBREV_MAP, getJSPAbbrevMap());
Font boldFont = DefaultSettings.defaultFont.deriveFont (Font.BOLD);
Font italicFont = DefaultSettings.defaultFont.deriveFont (Font.ITALIC);
Font italicBoldFont = italicFont.deriveFont (Font.BOLD);
SettingsUtil.PrintColoringSubstituter lightGraySubstituter
= new SettingsUtil.ForeColorPrintColoringSubstituter(Color.lightGray);
SettingsUtil.setColoring(m, JspTagSyntax.TN_JSP_TAG, new Coloring(italicBoldFont, Color.blue, new Color(239, 240, 235)));
SettingsUtil.setColoring(m, JspTagSyntax.TN_JSP_SYMBOL, new Coloring(boldFont, Color.black, new Color(239, 240, 235)));
SettingsUtil.setColoring(m, JspTagSyntax.TN_JSP_ATTRIBUTE, new Coloring(null, Color.green.darker().darker(), new Color(239, 240, 235)));
SettingsUtil.setColoring(m, JspTagSyntax.TN_JSP_ATTR_VALUE, new Coloring(null, Color.magenta, new Color(239, 240, 235)));
SettingsUtil.setColoring(m, JspTagSyntax.TN_JSP_COMMENT, new Coloring(boldFont, Color.gray, null),
lightGraySubstituter);
SettingsUtil.setColoring(m, JspTagSyntax.TN_JSP_SYMBOL2, new Coloring(boldFont, Color.black, new Color(255, 249, 223))); // same as Java
// Token colorings for Java
SettingsUtil.setColoring(m, JspMultiSyntax.JAVA_PREFIX + Syntax.TN_TEXT, new Coloring(null, null, new Color(255, 249, 223)));
//SettingsUtil.setColoring(m, JspMultiSyntax.JAVA_PREFIX + Syntax.TN_ERROR, new Coloring(null, Color.white, Color.red));
SettingsUtil.setColoring(m, JspMultiSyntax.JAVA_PREFIX + Syntax.TN_KEYWORD, new Coloring(boldFont, Color.blue, new Color(255, 249, 223)));
SettingsUtil.setColoring(m, JspMultiSyntax.JAVA_PREFIX + Syntax.TN_IDENTIFIER, new Coloring(null, null, new Color(255, 249, 223)));
SettingsUtil.setColoring(m, JspMultiSyntax.JAVA_PREFIX + Syntax.TN_FUNCTION, new Coloring(boldFont, null, new Color(255, 249, 223)),
SettingsUtil.italicFontPrintColoringSubstituter);
SettingsUtil.setColoring(m, JspMultiSyntax.JAVA_PREFIX + Syntax.TN_OPERATOR, new Coloring(null, null, new Color(255, 249, 223)));
SettingsUtil.setColoring(m, JspMultiSyntax.JAVA_PREFIX + Syntax.TN_LINE_COMMENT, new Coloring(italicFont, Color.gray, new Color(255, 249, 223)),
lightGraySubstituter);
SettingsUtil.setColoring(m, JspMultiSyntax.JAVA_PREFIX + Syntax.TN_BLOCK_COMMENT, new Coloring(italicFont, Color.gray, new Color(255, 249, 223)),
lightGraySubstituter);
SettingsUtil.setColoring(m, JspMultiSyntax.JAVA_PREFIX + Syntax.TN_CHAR, new Coloring(null, Color.green.darker(), new Color(255, 249, 223)));
SettingsUtil.setColoring(m, JspMultiSyntax.JAVA_PREFIX + Syntax.TN_STRING, new Coloring(null, Color.magenta, new Color(255, 249, 223)));
SettingsUtil.setColoring(m, JspMultiSyntax.JAVA_PREFIX + Syntax.TN_INT, new Coloring(null, Color.red, new Color(255, 249, 223)));
SettingsUtil.setColoring(m, JspMultiSyntax.JAVA_PREFIX + Syntax.TN_HEX, new Coloring(null, Color.red, new Color(255, 249, 223)));
SettingsUtil.setColoring(m, JspMultiSyntax.JAVA_PREFIX + Syntax.TN_OCTAL, new Coloring(null, Color.red, new Color(255, 249, 223)));
SettingsUtil.setColoring(m, JspMultiSyntax.JAVA_PREFIX + Syntax.TN_LONG, new Coloring(null, Color.red, new Color(255, 249, 223)));
SettingsUtil.setColoring(m, JspMultiSyntax.JAVA_PREFIX + Syntax.TN_FLOAT, new Coloring(null, Color.red, new Color(255, 249, 223)));
SettingsUtil.setColoring(m, JspMultiSyntax.JAVA_PREFIX + Syntax.TN_DOUBLE, new Coloring(null, Color.red, new Color(255, 249, 223)));
SettingsUtil.setColoring(m, JspMultiSyntax.JAVA_PREFIX + Syntax.TN_LINE_COMMENT, lightGraySubstituter, true);
SettingsUtil.setColoring(m, JspMultiSyntax.JAVA_PREFIX + Syntax.TN_BLOCK_COMMENT, lightGraySubstituter, true);
SettingsUtil.setColoring(m, JspMultiSyntax.JAVA_PREFIX + Syntax.TN_FUNCTION,
SettingsUtil.italicFontPrintColoringSubstituter, true);
// Token colorings for HTML
SettingsUtil.setColoring(m, JspMultiSyntax.HTML_PREFIX + HTMLSyntax.TN_TEXT, new Coloring( null, null, null ) );
SettingsUtil.setColoring(m, JspMultiSyntax.HTML_PREFIX + HTMLSyntax.TN_WS, new Coloring( null, null, null ) );
SettingsUtil.setColoring(m, JspMultiSyntax.HTML_PREFIX + HTMLSyntax.TN_ERROR, new Coloring( null, Color.white, Color.red ) );
SettingsUtil.setColoring(m, JspMultiSyntax.HTML_PREFIX + HTMLSyntax.TN_TAG, new Coloring( null, Color.blue, null ) );
SettingsUtil.setColoring(m, JspMultiSyntax.HTML_PREFIX + HTMLSyntax.TN_ARGUMENT, new Coloring( null, Color.green.darker().darker(), null ) );
SettingsUtil.setColoring(m, JspMultiSyntax.HTML_PREFIX + HTMLSyntax.TN_OPERATOR, new Coloring( null, Color.green, null ) );
SettingsUtil.setColoring(m, JspMultiSyntax.HTML_PREFIX + HTMLSyntax.TN_VALUE, new Coloring( null, Color.magenta, null ) );
SettingsUtil.setColoring(m, JspMultiSyntax.HTML_PREFIX + HTMLSyntax.TN_BLOCK_COMMENT, new Coloring( null, Color.gray, null ) );
SettingsUtil.setColoring(m, JspMultiSyntax.HTML_PREFIX + HTMLSyntax.TN_SGML_COMMENT, new Coloring( null, Color.gray, null ) );
SettingsUtil.setColoring(m, JspMultiSyntax.HTML_PREFIX + HTMLSyntax.TN_DECLARATION, new Coloring( null, Color.orange, null) );
SettingsUtil.setColoring(m, JspMultiSyntax.HTML_PREFIX + HTMLSyntax.TN_CHARACTER, new Coloring( null, Color.red.darker(), null ) );
/*SettingsUtil.setColoring(m, JspMultiSyntax.HTML_PREFIX + HTMLSyntax.TN_TEXT, new Coloring(null, null, null));
SettingsUtil.setColoring(m, JspMultiSyntax.HTML_PREFIX + HTMLSyntax.TN_WS, new Coloring(null, null, null));
SettingsUtil.setColoring(m, JspMultiSyntax.HTML_PREFIX + HTMLSyntax.TN_TAG, new Coloring(null, Color.blue, null));
SettingsUtil.setColoring(m, JspMultiSyntax.HTML_PREFIX + HTMLSyntax.TN_ARGUMENT, new Coloring(null, Color.green.darker().darker(), null));
SettingsUtil.setColoring(m, JspMultiSyntax.HTML_PREFIX + Syntax.TN_OPERATOR, new Coloring(null, Color.blue.darker(), null));
SettingsUtil.setColoring(m, JspMultiSyntax.HTML_PREFIX + Syntax.TN_VALUE, new Coloring(null, Color.magenta, null));
SettingsUtil.setColoring(m, JspMultiSyntax.HTML_PREFIX + Syntax.TN_BLOCK_COMMENT, new Coloring(italicFont, Color.gray, null),
lightGraySubstituter);
SettingsUtil.setColoring(m, JspMultiSyntax.HTML_PREFIX + Syntax.TN_SGML_COMMENT, new Coloring(italicFont, Color.gray, null),
lightGraySubstituter);
SettingsUtil.setColoring(m, JspMultiSyntax.HTML_PREFIX + Syntax.TN_DECLARATION, new Coloring(null, Color.orange.darker(), null));
SettingsUtil.setColoring(m, JspMultiSyntax.HTML_PREFIX + Syntax.TN_CHARACTER, new Coloring(null, Color.red.darker(), null));
*/
Syntax multiJsp = new JspMultiSyntax();
String tokens[] = new String[multiJsp.getHighestTokenID() + 1];
for (int i = 0; i <= multiJsp.getHighestTokenID(); i++) {
tokens[i] = multiJsp.getTokenName(i);
}
SettingsUtil.updateListSetting(m, Settings.COLORING_NAME_LIST, tokens);
/*
SettingsUtil.updateListSetting(m, Settings.COLORING_NAME_LIST,
new String[] {
Syntax.TN_TEXT,
Syntax.TN_ERROR,
JspTagSyntax.TN_JSP_TAG,
JspTagSyntax.TN_JSP_SYMBOL,
JspTagSyntax.TN_JSP_COMMENT,
JspTagSyntax.TN_JSP_ATTRIBUTE,
JspTagSyntax.TN_JSP_ATTR_VALUE,
}
);
// java
SettingsUtil.updateListSetting(m, Settings.COLORING_NAME_LIST,
new String[] {
Syntax.TN_TEXT,
Syntax.TN_ERROR,
Syntax.TN_KEYWORD,
Syntax.TN_IDENTIFIER,
Syntax.TN_FUNCTION,
Syntax.TN_OPERATOR,
Syntax.TN_LINE_COMMENT,
Syntax.TN_BLOCK_COMMENT,
Syntax.TN_CHAR,
Syntax.TN_STRING,
Syntax.TN_INT,
Syntax.TN_HEX,
Syntax.TN_OCTAL,
Syntax.TN_LONG,
Syntax.TN_FLOAT,
Syntax.TN_DOUBLE
}
);
// html
SettingsUtil.updateListSetting(m, Settings.COLORING_NAME_LIST,
new String[] {
Syntax.TN_TEXT,
Syntax.TN_ERROR,
HTMLSyntax.TN_TAG,
Syntax.TN_OPERATOR,
HTMLSyntax.TN_ARG,
Syntax.TN_BLOCK_COMMENT,
Syntax.TN_STRING,
Syntax.TN_INT,
}
);*/
}
return m; // Settings for other kits are not affected
}
Map getJSPAbbrevMap() {
Map jspAbbrevMap = new TreeMap ();
// <jsp:something tags
jspAbbrevMap.put ("jspu", "<jsp:useBean id=\"");
jspAbbrevMap.put ("jspg", "<jsp:getProperty name=\"");
jspAbbrevMap.put ("jg", "<jsp:getProperty name=\"");
jspAbbrevMap.put ("jsps", "<jsp:setProperty name=\"");
jspAbbrevMap.put ("jspi", "<jsp:include page=\"");
jspAbbrevMap.put ("jspf", "<jsp:forward page=\"");
jspAbbrevMap.put ("jspp", "<jsp:plugin type=\"");
// taglib
jspAbbrevMap.put ("tglb", "<%@ taglib uri=\"");
// <%@ page tags
jspAbbrevMap.put ("pg", "<%@ page ");
jspAbbrevMap.put ("pgl", "<%@ page language=\"");
jspAbbrevMap.put ("pgex", "<%@ page extends=\"");
jspAbbrevMap.put ("pgim", "<%@ page import=\"");
jspAbbrevMap.put ("pgs", "<%@ page session=\"");
jspAbbrevMap.put ("pgb", "<%@ page buffer=\"");
jspAbbrevMap.put ("pga", "<%@ page autoFlush=\"");
jspAbbrevMap.put ("pgin", "<%@ page info=\"");
jspAbbrevMap.put ("pgit", "<%@ page isThreadSafe=\"");
jspAbbrevMap.put ("pgerr", "<%@ page errorPage=\"");
jspAbbrevMap.put ("pgc", "<%@ page contentType=\"");
jspAbbrevMap.put ("pgie", "<%@ page isErrorPage=\"");
// common java abbrevs
jspAbbrevMap.put ("rg", "request.getParameter(\"");
jspAbbrevMap.put ("sg", "session.getValue(\"");
jspAbbrevMap.put ("sp", "session.putValue(\"");
jspAbbrevMap.put ("sr", "session.removeValue(\"");
jspAbbrevMap.put ("pcg", "pageContext.getAttribute(\"");
jspAbbrevMap.put ("pcgn", "pageContext.getAttributeNamesInScope(");
jspAbbrevMap.put ("pcgs", "pageContext.getAttributesScope(\"");
jspAbbrevMap.put ("pcr", "pageContext.removeAttribute(\"");
jspAbbrevMap.put ("pcs", "pageContext.setAttribute(\"");
jspAbbrevMap.put ("ag", "application.getValue(\"");
jspAbbrevMap.put ("ap", "application.putValue(\"");
jspAbbrevMap.put ("ar", "application.removeValue(\"");
jspAbbrevMap.put ("oup", "out.print(\"");
jspAbbrevMap.put ("oupl", "out.println(\"");
jspAbbrevMap.put ("cfgi", "config.getInitParameter(\"");
return jspAbbrevMap;
}
}
/*
* Log
* 3 Gandalf-post-FCS1.1.1.0 3/31/00 Petr Jiricka Using new HTMLSyntax
* 2 Gandalf 1.1 2/11/00 Petr Jiricka Numerous small fixes.
* 1 Gandalf 1.0 2/10/00 Petr Jiricka
* $
*/